<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		
		<script type="text/javascript">
			"use strict"
			
			// Array数组可以包含任意的数据类型
			let arr = [1,2,3,4,null,false];
			console.log(arr);
			// 长度
			console.log(arr.length);
			// 赋值
			arr[0] = 100;
			console.log(arr);
			
			/**
			 * 长度是可变的
			 * 假如给 arr.length 赋值，数组的大小就会发生变化
			 * 注意：跟 Java 不一样的是，JavaScript里面数组下标越界不会报错，是一个'undefind'
			 * 		如果对 arr.length 赋值过小，元素就会丢失
			 */
			arr.length = 10;
			console.log(arr);
			console.log(arr.length);
			
			// 通过元素获得下标索引
			let index = arr.indexOf(null);
			console.log(index);
			
			// slice() 方法截取Array的一部分返回一个数组。类似String字符串中的 substring() 用法都一样
			let arr2 = arr.slice(0,3);
			let arr3 = arr.slice(3);
			console.log(arr2);
			console.log(arr3);
			
			// push() 和 pop()
			// push() 压入到尾部
			arr.push('a','b');
			console.log(arr);
			// pop()弹出尾部的一个元素
			console.log(arr.pop());
			console.log(arr);
			
			// unshift() 和 shift()
			// unshift() 压入到首部
			console.log("----------------unshift and shift-------------------")
			arr.unshift('c','d');
			console.log(arr);
			// shift() 弹出首部的一个元素
			console.log(arr.shift());
			console.log(arr);
			
			// 数组的排序方法
			let arr4 = ['B','C','A'];
			console.log(arr4);
			arr4.sort();
			console.log(`排序后：${arr4}`)
			arr.sort();
			console.log(arr);
			/**
			 * 经过自己的尝试，发现一个问题
			 * sort() 有些时候可以对数字排序进行排序，有些时候不行
			 */
			
			// 元素反转
			arr4.reverse();
			console.log(arr4); 
			
			// concat() 拼接数组，并返回一个新的数组，并不会吧原来的数组干掉
			let arr5 = arr4.concat([1,2,3]);
			console.log(`${arr4} \n ${arr5}`);
			
			// 连接符 join
			// 打印拼接数组，使用特定的字符串连接
			console.log(arr4.join('-'));
			
			// 多维数组
			let arr6 = [[1,2],[3,4],['a','b']];
			console.log(arr6[1][0]);
			
		</script>
		
	</head>
	<body>
	</body>
</html>
